RTMP要支持H.265,大家约定俗成的做法是扩展flv协议,CDN厂商携手给出的解决方案是给flv的videotag CodecID增加一个新类型(12)来表示h265(hevc),和h264不同的地方是要解析 遗憾的是,尽管CodecID可以自定义,但CodecID只有4个bits,增加H.265尚可,如果后续再新增VP8、VP9、 AV1甚至H.266就很尴尬,这种尴尬持续了数年,直到官方发布了 Enhancing RTMP新的规范。 if (VP9 == video_fourcc) { // vp9处理}else if (AV1 == video_fourcc ) { // AV1处理}}启动Windows平台窗体采集,设置H.265 硬编码,输入RTMP推流URL,实现Enhanced RTMP推送,播放端拉流播放,整体延迟如下:可以看到,尽管开启了Enhanced RTMP,整体延迟还在毫秒级。
它在不破坏现有生态的前提下,增加了对 HEVC/H.265 的支持,扩展了 FLV 容器结构,使 RTMP 可以在同一链路上同时承载 H.264 与 H.265,从而为后续的 AV1/H.266 演进预留了空间 元数据与兼容性设计Enhanced RTMP 在 FLV 层面也保持了原有容器的设计思路: H.264 与 H.265 可在同一链路上共存; 不支持 Enhanced RTMP 的客户端仍能回退到 H Enhanced RTMP 的出现,等于把这块 正式规范化,通过 FourCC (hvc1) 与 PacketType 明确定义了 H.265 在 RTMP 中的表达方式。2. 这种跨平台适配确保了开发者在 安防监控、远程教育、工业巡检、低空经济 等场景中,能直接在不同终端无缝播放 RTMP H.265 流。 它不仅补足了传统 RTMP 在 H.265 承载上的缺口,更重要的是确立了一个 跨平台、跨厂商、跨生态的统一规范,为行业未来的演进奠定了基础。
不久前我们已经在RTMP推送端扩展支持了HEVC(H.265 后文统称H265)编码格式,但是,由于RTMP官方指定的协议格式已经不再更新,官方的播放器的Flash播放器并不支持H265格式的编码数据进行解码播放 ;现在,我们需要在播放器端解析RTMP流时对H265编码格式进行扩展支持。 扩展支持HEVC(H.265) e_FlvVideoCodecId_Hevc = 12, }; enum FlvCodeId { FlvCodeId_Jpeg = 1, FlvCodeId_Sorenson 扩展支持HEVC(H.265) FlvCodeId_Hevc = 12, }; 2. 拉流)播放,如下图所示: 图片 我们发现通过网页播放我们推送的基于H265编码的RTMP是播放不了的,而通过SkeyePlayer则成功播放了出来,说明我们通过SkeyeRTMPClient拉取RTMP
直播推流端SDK Android屏幕、摄像头RTMP推流SDK,支持RTMP扩展H.265推送(H.265硬编码); RTSP直播推流SDK 支持RTSP H.264/H.265推送,音频支持AAC 扩展H.265]Windows/Android/iOS推送SDK支持RTMP扩展H.265推送,Windows针对摄像头采集软编码,使用H.265可变码率,带宽大幅节省,效果直逼传统H.265编码摄像头 ]支持网络状态、buffer状态等回调; [视频格式]支持RTSP H.265、RTMP扩展H.265,RTSP/RTMP H.264,此外,还支持RTSP MJPEG播放; [音频格式]RTMP/ ,支持RTSP/RTMP H.265数据接入。 /rtmp流到rtmp server; [H.265支持]业内首家支持RTSP/RTMP H.265转RTMP推送的SDK(提供配套RTMP扩展H.265服务器); 对应Demo: Windows测试程序
但随着 H.265/HEVC 的普及,产业提出了两种扩展方案: RTMP 扩展 H.265:在 VideoTag 中通过扩展 CodecID 表示 HEVC,兼容 H.264 的封装方式; Enhanced RTMP 扩展 H.265 的封装业界将 CodecID 扩展为 12,标识 HEVC。 全面编码支持与软硬解灵活切换 视频支持:H.264/H.265 全面覆盖,并兼容 Enhanced RTMP HEVC,可无缝播放主流 RTMP/H.265 流。 五、与规范的对应关系层面规范/扩展SDK 实现视频编码RTMP H.264 (CodecID=7)软/硬解全面支持RTMP 扩展 H.265 (CodecID=12)内核支持,适配 H.265 解码器Enhanced 在 H.265/HEVC 普及的背景下,通过 RTMP 扩展 H.265 与 Enhanced RTMP HEVC 的演进,RTMP 不仅延续了传统优势,还成功拓展到 低延迟、高压缩比的新一代实时视频链路
功能支持Windows平台RTMP直播推送SDK音频编码:AAC/SPEEX;视频编码:H.264、H.265;推流协议:RTMP;[音视频]支持纯音频/纯视频/音视频推送;[屏幕/摄像头]支持帧率、关键帧间隔 扩展H.265(需设备支持H.265特定机型硬编码)和Enhanced RTMP;支持特定机型硬编码;支持实时音量调节;支持扩展录像模块;支持Unity接口;支持H.264扩展SEI发送模块;支持Windows7 RTMP服务器或CDN;支持断网自动重连、网络状态回调;支持实时动态水印;支持实时快照;支持降噪处理、自动增益控制;支持外部编码前音视频数据对接;支持外部编码后音视频数据对接;支持RTMP扩展H.265 iOS平台RTMP直播推送SDK音频编码:AAC;视频编码:H.264、H.265;推流协议:RTMP;[音视频]支持纯音频/纯视频/音视频推送;[摄像头]支持采集过程中,前后摄像头实时切换;支持帧率、 、竖屏推送;[对接服务器]支持自建标准RTMP服务器或CDN;支持断网自动重连、网络状态回调;实时快照;外部编码前音视频数据对接;外部编码后音视频数据对接;特定设备H.265硬编码;RTMP扩展H.265
技术演进“大牛直播SDK”始于2015年,致力于传统行业极致体验的音视频直播技术解决方案,产品涵盖跨平台的实时RTMP推流、RTMP/RTSP直播播放(支持RTSP|RTMP H.265,Enhanced RTMP H.265)、GB28181设备接入、推送端播放端实时录像、多路流媒体转发(RTSP转RTMP,RTMP转RTMP,RTSP|RTMP转GB28181)、音视频导播、动态视频合成、音频混音、 大牛直播SDK的RTMP播放器在行业内享有较高的评价,其特点主要体现在以下几个方面:超低延迟大牛直播SDK的RTMP播放器在延迟控制方面表现出色,能够将播放延迟稳定地控制在较低水平。 ]支持RTMP扩展H.265和Enhanced RTMP H.265,H.264; [音频格式]支持AAC/PCMA/PCMU/Speex; [H.264/H.265软解码]支持H.264/H.265软解 ; [H.264硬解码]Windows/Android/iOS支持特定机型H.264硬解; [H.265硬解]Windows/Android/iOS支持特定机型H.265硬解; [H.264/H.265
做好了RTMP推送模块,发现现有的RTMP播放都不足以满足我们毫秒级的延迟诉求,继续自研框架,做了RTMP的直播播放器。本文以大牛直播SDK的Android平台RTMP直播推送模块为例。 Android平台RTMP推送模块功能设计:音频编码:AAC/SPEEX;视频编码:H.264、H.265;推流协议:RTMP;[音视频]支持纯音频/纯视频/音视频推送;[摄像头]支持采集过程中,前后摄像头实时切换 支持RTMP扩展H.265(需设备支持H.265特定机型硬编码)和Enhanced RTMP;支持实时音量调节;支持扩展录像模块;支持Unity接口;支持H.264扩展SEI发送模块;支持Android 编码设置:提供硬编码检测(H.264、H.265)和设置接口,如SetSmartPublisherVideoHWEncoder、SetSmartPublisherVideoHevcHWEncoder。 H.265与Enhanced RTMP支持:除了H.264外,还支持H.265编码和Enhanced RTMP扩展。
:音频编码:AAC/SPEEX;视频编码:H.264、H.265;推流协议:RTMP;[音视频]支持纯音频/纯视频/音视频推送;[屏幕/摄像头]支持帧率、关键帧间隔(GOP)、码率(bit-rate)设置 扩展H.265(需设备支持H.265特定机型硬编码)和Enhanced RTMP;支持特定机型硬编码;支持实时音量调节;支持扩展录像模块;支持Unity接口;支持H.264扩展SEI发送模块;支持Windows7 如果是轻量级RTSP服务: [基础功能]支持Windows平台RTMP直播推送模块常规功能; [音频格式]AAC; [视频格式]H.264、H.265; [协议类型]RTSP; [传输模式]支持单播和组播模式 编码设置视频编码:支持H.264和H.265编码。 在Windows 64位系统上,如果推RTMP流,需要服务器支持RTMP H.265扩展(或Enhanced RTMP),同时播放器SDK也需要同步支持RTMP H.265扩展播放。
正常情况下,网上大多看到的,针对RTMP播放器的延迟在2秒到3秒左右。这是基于RTMP协议本身的特性和一般的推流、播放设置所得出的结论。 [多实例播放]支持多实例播放; [事件回调]支持网络状态、buffer状态等回调; [视频格式]支持RTMP扩展H.265和Enhanced RTMP H.265,H.264; [音频格式]支持AAC/ PCMA/PCMU/Speex; [H.264/H.265软解码]支持H.264/H.265软解; [H.264硬解码]Windows/Android/iOS支持特定机型H.264硬解; [H.265硬解 ]Windows/Android/iOS支持特定机型H.265硬解; [H.264/H.265硬解码]Android支持设置Surface模式硬解和普通模式硬解码; [缓冲时间设置]支持buffer time 实时下载速度更新]支持当前下载速度实时回调(支持设置回调时间间隔); [ARGB叠加]Windows平台支持ARGB图像叠加到显示视频(参看C++的DEMO); [解码前视频数据回调]支持H.264/H.265
这正是 大牛直播SDK(SmartMediaKit) 的定位:提供面向机器人与边缘智能的低延迟 RTSP 播放/服务、内网公网 RTMP 分发(含 Enhanced RTMP + HEVC/H.265) RTMP + HEVC/H.265,在同等码率下更高画质或更低带宽; 轻量转发/小型服务:端侧或边缘即可完成发流/转封装/转发,减少对集中式流媒体的依赖; GB28181 对接:适配政企安防汇聚、 [支持播放协议] RTSP、RTMP; [多实例播放]支持多实例播放; [事件回调]支持网络状态、buffer状态等回调; [视频格式]支持H.265、H.264,此外,还支持RTSP MJPEG播放; [视频格式]支持RTMP扩展H.265和Enhanced RTMP H.265,H.264; [音频格式]支持AAC/PCMA/PCMU/SPEEX(RTMP); [H.264/H.265软解码]支持 H.264/H.265软解; [H.264硬解码]Windows/Android/iOS支持特定机型H.264硬解; [H.265硬解]Windows/Android/iOS支持特定机型H.265硬解;
RTSP H.265到RTMP,首先需要扩展RTMP协议。目前,我国已有相应的推广标准,国内开发商基本上都是按照该协议进行推广的。协议层面的问题已经得到解决。 剩下的关键问题是实现RTMP H.265推送模块。 ? rtmp h265 server 支持,目前常用的nginx-rtmp 和 srs还不支持rtmp h265,需要做些修改。 对于nginx rtmp,由于nginx rtmp 模块代码较少,支持265 很方便,也是增加265类型,解析HEVCDecoderConfigurationRecord,对相应模块做处理即可。 rtmp h265 播放支持,首先要从rtmp中解析出265,需要解析出h265 nal unit 和 HEVCDecoderConfigurationRecord. 265比264多个vps,需要解析 另外就是 nal type 针对h.265需要处理。解析出nal units之后。下一个关键点就是解码,目前安卓部分手机已经支持h265硬解,或者用软解也可以。
可以将桌面、摄像头、程序窗口通过rtmp推送到流媒体服务器上。 旋转; [摄像头采集]除常规YUV格式外,Windows平台还支持MJPEG格式的摄像头采集; [麦克风/扬声器采集]Windows平台音频输入端支持麦克风、扬声器,或麦克风和扬声器混音输入; [RTMP 推流]超低延时的RTMP协议直播推流SDK(Windows/Android/iOS支持RTMP扩展H.265推送); [视频格式]Windows/Android平台支持H.264/H.265编码(Android 硬编码]Windows/Android/iOS平台支持H.265特定机型硬编码; [硬编码自适应]Android/iOS平台支持硬编码自适应,如检测到硬编码不支持,自动切换到软编(iOS如H.265硬编 扩展H.265]Windows/Android/iOS推送SDK支持RTMP扩展H.265推送,Windows针对摄像头采集软编码,使用H.265可变码率,带宽大幅节省,效果直逼传统H.265编码摄像头
经过七年的酝酿和开发,SRS在6.0中终于正式支持了HEVC(H.265),几乎全面支持,包括RTMP、FLV、SRT、TS、HLS、DASH、GB28181、WebRTC(Safari)、DVR FLV 而H.265正有这一堆的问题,所以如果你想要选择H.265,一定要想好了,看看你的场景下收益是否能超过要付出的成本。 Status of H.265 下面是各种场景下,H.265的支持情况,可以阅读原文,看详细的Commit。 • 补丁支持:使用FFmpeg拉RTMP流。 • 补丁支持:使用FFmpeg拉HTTP-FLV流。 • 补丁支持:使用ffplay播放RTMP流。 Thanks H.265这个功能,核心的贡献都是社区的朋友,有可能会漏掉哈请多包涵,包括但不限于: • runner365 施维大神,最初的PR的提交者,RTMP、HLS和SRT支持265。
EasyCVR平台一直是TSINGSEE青犀视频产品中支持协议最为丰富的平台,由于原本就支持国标GB28181、RTSP协议,又在我们不断拓宽之下开发了私有协议的接入和RTMP推流功能,可以直接接收客户端推送 rtmp流,可直播、可录像。 接口定义如下: 在调用此接口时protocol传值为RTMP,得到如下返回: 接着用VLC播放就出现异常情况,发现无法播放,如下图: 但是在EasyCVR平台却发现可以播放: 这时我们就可以发现上图中 EasyCVR系统选择的是EasyWasmPlayer播放器,这个播放器是TSINGSEE青犀视频开发的H.265播放器,专门用来播放H.265编码格式的视频流。 问题就在这里,因为vlc不支持RTMP扩展H.265拉流,上图中EasyCVR默认播放的是FLV协议的流。
支持特定机型H.264硬解; [H.265硬解]Windows/Android/iOS支持特定机型H.265硬解; [H.264/H.265硬解码]Android支持设置Surface模式硬解和普通模式硬解码 AAC/SPEEX;视频编码:H.264、H.265;推流协议:RTMP;[音视频]支持纯音频/纯视频/音视频推送;[屏幕/摄像头]支持帧率、关键帧间隔(GOP)、码率(bit-rate)设置;[屏幕] 扩展H.265(需设备支持H.265特定机型硬编码)和Enhanced RTMP;支持特定机型硬编码;支持实时音量调节;支持扩展录像模块;支持Unity接口;支持H.264扩展SEI发送模块;支持Windows7 ]支持RTMP扩展H.265和Enhanced RTMP H.265,H.264; [音频格式]支持AAC/PCMA/PCMU/Speex; [H.264/H.265软解码]支持H.264/H.265软解 ; [H.264硬解码]Windows/Android/iOS支持特定机型H.264硬解; [H.265硬解]Windows/Android/iOS支持特定机型H.265硬解; [H.264/H.265
功能支持:Windows平台RTMP直播推送SDK音频编码:AAC/SPEEX;视频编码:H.264、H.265;推流协议:RTMP;[音视频]支持纯音频/纯视频/音视频推送;[屏幕/摄像头]支持帧率、 扩展H.265(需设备支持H.265特定机型硬编码)和Enhanced RTMP;支持特定机型硬编码;支持实时音量调节;支持扩展录像模块;支持Unity接口;支持H.264扩展SEI发送模块;支持Windows7 RTMP服务器或CDN;支持断网自动重连、网络状态回调;支持实时动态水印;支持实时快照;支持降噪处理、自动增益控制;支持外部编码前音视频数据对接;支持外部编码后音视频数据对接;支持RTMP扩展H.265 、竖屏推送;[对接服务器]支持自建标准RTMP服务器或CDN;支持断网自动重连、网络状态回调;实时快照;外部编码前音视频数据对接;外部编码后音视频数据对接;特定设备H.265硬编码;RTMP扩展H.265 推流功能: RTMP 推流:提供超低延时的 RTMP 协议直播推流功能,并且 Windows、Linux、Android、iOS 支持 RTMP 扩展 H.265 推送,在保证推流质量的同时,能够有效降低带宽占用
我们团队(TSINGSEE青犀视频)在视频监控直播系统搭建上付出了很多努力,最终也出了适应不同场景的搭建方案:接入RTSP协议摄像头的EasyNVR、接入RTMP协议摄像头的EasyDSS、接入GB28181 最近我在浏览摄像头相关的内容时,看到很多人都说海康的IP摄像头接入时会被自动修改成H.265编码,我在使用摄像头进行测试时,也遇到了这样的问题。 在我手动将编码修改成H.264后,马上还是被自动修改回H.265。 不过随着H.265编码格式的应用越来越广泛,设备和流媒体服务对H.265的支持是越来越需要了,目前我们无论是通过RTSP/Onvif协议接入到EasyNVR,还是GB/T28181接入到EasyGBS, 或者是RTMP推流到EasyDSS,都已经非常好地支持了H.265编码格式了,无需服务端经过大计算的转码,流媒体服务直接支持H.265,对流量、带宽、机器性能的要求都大大降低了。
✅ Windows平台RTMP直播推送SDK功能列表音频编码:AAC/SPEEX;视频编码:H.264、H.265;推流协议:RTMP;[音视频]支持纯音频/纯视频/音视频推送;[屏幕/摄像头]支持帧率 扩展H.265(需设备支持H.265特定机型硬编码)和Enhanced RTMP;支持特定机型硬编码;支持实时音量调节;支持扩展录像模块;支持Unity接口;支持H.264扩展SEI发送模块;支持Windows7 ]支持网络状态、buffer状态等回调; [视频格式]支持RTMP扩展H.265和Enhanced RTMP H.265,H.264; [音频格式]支持AAC/PCMA/PCMU/Speex; [H.264 /H.265软解码]支持H.264/H.265软解; [H.264硬解码]Windows支持特定机型H.264硬解; [H.265硬解]Windows支持特定机型H.265硬解; [缓冲时间设置]支持buffer 高帧率 RTMP 推流模块 —— 面向安检设备端依托大牛直播SDK Windows 平台的 RTMP 推流能力,安检设备可以实现高效、稳定的视频推送,核心特性包括: H.264 / H.265 软硬件编码支持
高性能 RTMP 播放核心 协议兼容性强: 支持标准 RTMP; 支持扩展格式:RTMP + H.265、Enhanced RTMP-H.265; 行业稀缺的 H.265 RTMP 播放支持,适用于高效视频传输 / Enhanced RTMP-H.265 / RTMP-H.264视频解码H.264 / H.265(软解 & 硬解,支持 Surface 模式配置)音频解码AAC / PCMA / PCMU / H.264❌ RTMP支持不稳定,H.265支持需额外适配播放延迟✅ 实测公网端到端可低至 100~250ms❌ 通常延迟2-3s,且不可控首屏加载速度✅ 支持“首屏秒开”优化,提升用户响应体验❌ 不具备原生优化软硬解支持 ✅ H.264 / H.265 全面支持软解+硬解(可切换)部分支持,硬解控制较弱播放流切换✅ 支持播放中快速切换 RTMP 地址,无缝衔接❌ 不支持 / 需重建播放器实例缓冲策略控制✅ 可选低延迟 / 播放状态回调 AI识别前端输入RTMP流作为前端感知输入,解码后帧输出给AI模型做识别、分析YUV/RGB帧回调 + SEI元数据提取 + H.265解码性能优势️ 公检法现场执法回传执法记录仪或移动终端采集音视频并实时回传至指挥中心预览自动重连